package app.fugema.shop;

import android.content.Context;
import android.database.sqlite.SQLiteException;
import android.util.Log;
import android.widget.Toast;

import com.base.common.app.AppManager;
import com.base.common.app.BaseApp;
import com.base.common.app.LoginUtils;
import com.base.common.service.NetworkService;
import com.base.common.utils.LogUtil;
import com.base.common.utils.UIUtils;
import com.jeremyliao.liveeventbus.LiveEventBus;
import com.orm.SugarContext;

import app.fugema.shop.constants.AppConstants;
import app.fugema.shop.main.home.view.MainActivity;

import com.tencent.bugly.Bugly;
import com.tencent.bugly.beta.Beta;
import com.umeng.commonsdk.UMConfigure;
import com.umeng.commonsdk.utils.UMUtils;
import com.umeng.message.IUmengRegisterCallback;
import com.umeng.message.PushAgent;
import com.umeng.message.UTrack;
import com.umeng.message.UmengNotificationClickHandler;
import com.umeng.message.entity.UMessage;


public class AndroidApp extends BaseApp {

    @Override
    public void onCreate() {
        super.onCreate();

//        if (BuildConfig.DEBUG) {
////            Stetho.initializeWithDefaults(getApplicationContext());
//        }



        //初始化sugar
        try {
            SugarContext.init(this);
        } catch (SQLiteException e) {

        }

        // 网络监听服务
        NetworkService.enqueueWork(UIUtils.getContext());

        Beta.canShowUpgradeActs.add(MainActivity.class);

        //         设置开发设备，默认为false，上传补丁如果下发范围指定为“开发设备”，需要调用此接口来标识开发设备
//        Bugly.setIsDevelopmentDevice(getApplication(), true);
//         这里实现SDK初始化，appId替换成你的在Bugly平台申请的appId

        //bugly初始化
        //         调试时，将第三个参数改为true
        Bugly.init(getApplication(), "87bdbb2f26", true);

/**
 * 初始化LiveEventBus
 * 2、配置LifecycleObserver（如Activity）接收消息的模式（默认值true）：
 * true：整个生命周期（从onCreate到onDestroy）都可以实时收到消息
 * false：激活状态（Started）可以实时收到消息，非激活状态（Stoped）无法实时收到消息，需等到Activity重新变成激活状
 * 态，方可收到消息
 * 3、autoClear
 * 配置在没有Observer关联的时候是否自动清除LiveEvent以释放内存（默认值false）
 * */

        LiveEventBus.config()
//                .setJsonConverter(new JsonConverter() {
//                    @Override
//                    public String toJson(Object value) {
//                        return JacksonUtils.transBean2Json(value);
//                    }
//
//                    @Override
//                    public <T> T fromJson(String json, Class<T> classOfT) {
//                        return JacksonUtils.getJsonBean(json, classOfT);
//                    }
//                })
                .lifecycleObserverAlwaysActive(true)
                .autoClear(true);


    }

    @Override
    public void onTerminate() {
        super.onTerminate();
        SugarContext.terminate();
    }

}
